1 REM BUILD A QUIZ 100 DI=8:TA=1:REM ** DEVICE NUMBERS ** 110 VC=53248:POKEVC+32,0:POKEVC+33,11:PRINTCHR$(147) 120 Z$=CHR$(13):DP=0:PS=0 130 DIM NT%(30) 140 MC=54272:FORX=MCTO54296:POKEX,0:NEXTX 150 FORX=0TO30:READZ:NT%(X)=Z:NEXTX 160 M=((PEEK(53272)AND240)/16)*1024 170 C=55296 200 PRINT"[153] FABRICATION D'UN QUESTIONNAIRE [146]" 210 PRINT" L'OPTION 1 DE CE PROGRAMME EST DE" 215 PRINT" MONTER UN QUESTIONNAIRE ET LE" 217 PRINT" GARDER SUR CASSETTE OU DISQUETTE." 220 PRINT" L'OPTION 2 PERMET DE RAPPELER UN" 223 PRINT" QUESTIONNAIRE EXISTANT ET DE T'EN " 225 PRINT" FAIRE PASSER L'EXAMEN." 227 GOSUB9000 230 PRINT" ENTRER L'OPTION:" 240 PRINT" 1[146] FABRIQUER UN QUESTIONNAIRE":PRINT" 2[146] PASSER L'EXAMEN" 245 PRINT" 3[146] TERMINER LE PROGRAMME." 250 GETX$:IFX$=""THEN250 260 X=VAL(X$):ONXGOTO300,700,280 270 GOTO250 280 PS=0:GOSUB9000:PRINTCHR$(147) 290 END 300 NQ=0:GOSUB9200:GOSUB7500:PRINTCHR$(147) 310 OPEN9,DV,1,QN$:PRINTCHR$(147):PRINT#9,X$;Z$; 320 NQ=NQ+1:PRINT"[147] INDIQUER TYPE DE QUESTION:" 330 PRINT" 1[146] VRAI OU FAUX":PRINT" 2[146] CHOIX MULTIPLES" 335 PRINT" 3[146] COMPLETER LA PHRASE" 340 PRINT" 4[146] FIN DE L'EXAMEN." 350 GETX$:IFX$=""THEN350 360 IF X$="4"THENT$=X$:GOTO550 365 IF X$<"1"ORX$>"3"THEN350 370 PRINT"[147] QUESTION #";NQ; 380 X=VAL(X$):T$=X$:ONXGOTO400,450,500 390 GOTO350 400 PRINT"(VRAI OU FAUX)":O=240:L=80:GOSUB8000:A$=X$ 410 PRINT" INDIQUER LA BONNE REPONSE V[146] OU F[146]" 420 GETX$:IFX$=""THEN420 430 IF X$<>"V"AND X$<>"F"THEN420 435 PRINTCHR$(147) 440 PRINT#9,T$;Z$;A$;Z$;X$;Z$;:GOTO320 450 PRINT"(CHOIX MULTIPLE)":O=240:L=80:GOSUB8000 455 Q$=X$:PRINT" A.":O=404:L=76:GOSUB8000 460 A$=X$:PRINT" B.":O=524:GOSUB8000:B$=X$ 465 PRINT" C.":O=644:GOSUB8000:C$=X$ 470 PRINT" D.":O=764:GOSUB8000:D$=X$ 480 PRINT" INDIQUER LA BONNE REPONSE (A[146], B[146], C[146] OU D[146]" 485 GETX$:IFX$=""THEN485 490 IFX$<"A"ORX$>"D"THEN485 495 PRINTCHR$(147) 497 PRINT#9,T$;Z$;Q$;Z$;A$;Z$;B$;Z$;C$;Z$;D$;Z$;X$;Z$; 499 GOTO320 500 PRINT"(COMPLETER LA PHRASE)":O=240:L=80:GOSUB8000:Q$=X$ 505 PRINT" ENTRER LA BONNE REPONSE:" 510 O=600:L=80:GOSUB8000 520 PRINTCHR$(147) 530 PRINT#9,T$;Z$;Q$;Z$;X$;Z$; 540 GOTO320 550 PRINTCHR$(147) 560 PRINT#9,T$;Z$; 570 CLOSE9 580 GOTO200 700 GOSUB9200:GOSUB7500:PRINTCHR$(147) 730 OPEN9,DV,0,QN$:GOSUB6000 740 IFLEN(X$)>39THEN760 750 A$=" "+X$:X$=A$+" ":GOTO740 760 PRINT"[147]":FORX=1TO11:PRINTX$;:PRINT" ":NEXTX:GOSUB7000:FORX=1TO1500:NEXTX 770 PRINTCHR$(147):NQ=0:CQ=0 800 INPUT#9,X$ 810 IF X$="4"THEN2000 820 IF X$<"1"ORX$>"3"THEN800 830 NQ=NQ+1:X=VAL(X$) 850 ONXGOTO900,1000,1100 860 GOTO800 900 GOSUB6000:Q$=X$:GOSUB6000:R$=X$ 902 PRINT"[147] QUESTION #";NQ 904 PRINT"";Q$ 910 PRINT" ENTRER V[146] POUR VRAI" 920 PRINT" ENTRER F[146] POUR FAUX" 940 GETA$:IFA$=""THEN940 950 IFA$<>"V"ANDA$<>"F"THEN940 960 IFA$<>R$THEN1200 970 GOTO1300 1000 GOSUB6000:Q$=X$:GOSUB6000:A$=X$:GOSUB6000:B$=X$:GOSUB6000:C$=X$ 1002 GOSUB6000:D$=X$:GOSUB6000:R$=X$ 1006 PRINT"[147] QUESTION #";NQ 1008 PRINT"";Q$:PRINT" A. ";A$:X$=A$:GOSUB6700 1010 PRINT " B. ";B$:X$=B$:GOSUB6700:PRINT" C. ";C$:X$=C$:GOSUB6700 1020 PRINT" D. ";D$:X$=D$:GOSUB6700 1030 PRINT" ENTRER A[146],B[146],C[146] OU D[146]" 1040 GETA$:IFA$=""THEN1040 1050 IF A$<"A"OR A$>"D"THEN1040 1060 IFA$<>R$THEN1200 1070 GOTO1300 1100 GOSUB6000:Q$=X$:GOSUB6000:R$=X$ 1102 PRINT"[147] QUESTION #";NQ 1110 PRINT"";Q$ 1120 O=480:L=80:GOSUB8000 1130 IF X$<>R$THEN1200 1140 GOTO1300 1200 GOSUB7200 1205 PRINT"[147] LA BONNE REPONSE EST:" 1207 PRINT" ";R$ 1210 FOR X=1TO1500:NEXTX:PRINTCHR$(147):GOTO800 1300 CQ=CQ+1:GOSUB7000 1310 PRINTCHR$(147) 1320 GOTO800 2000 PRINT" QUESTIONNAIRE[146] TERMINE[146]" 2010 PRINT" NOMBRE DE QUESTIONS =";NQ 2020 PRINT" NOMBRE DE BONNE REPONSE =";CQ 2030 IF NQ=0THENNQ=1 2040 X=INT((CQ*100)/NQ) 2050 PRINT" VOTRE RESULTAT EST DE ="X;"[157]%" 2060 PRINT" (PRESSER UNE TOUCHE)" 2070 GETX$:IF X$=""THEN2070 2080 PRINTCHR$(147) 2090 CLOSE9 2100 GOTO200 6000 X$="" 6010 GET#9,R$ 6020 IF R$=""THEN6010 6030 IF ASC(R$)=13THEN6060 6040 X$=X$+R$ 6050 GOTO6010 6060 RETURN 6700 X=LEN(X$):IFX=36ORX=76THEN6720 6710 PRINT"[160]" 6720 RETURN 7000 POKEMC+0,0:POKEMC+1,0:POKEMC+5,15:POKEMC+6,15:POKEMC+24,10 7010 FORX=2TO11 7020 POKEVC+33,X:POKEMC+1,X*5:POKEMC+4,33 7030 FORY=1TO50:NEXTY 7040 POKEMC+4,32:FORY=1TO10:NEXTY,X 7050 POKEMC+24,0 7060 RETURN 7200 POKEMC+0,0:POKEMC+1,30:POKEMC+4,33:POKEMC+5,15:POKEMC+6,15 7210 POKEVC+33,0:POKEMC+24,10 7220 FORX=1TO500:NEXTX 7230 POKEMC+4,32:FORX=1TO20:NEXTX 7240 POKEMC+24,0:POKEVC+33,11 7250 RETURN 7500 PRINT"[147] ENTRER LE NOM DU QUESTIONNAIRE" 7505 PRINT" (DE 1 A 37 LETTRES)" 7510 O=648:L=38:GOSUB8000:IFLEN(X$)>37 THEN7500 7520 QN$=X$:IFLEN(X$)>11THENQN$=LEFT$(X$,11) 7530 QN$="QUIZ/"+QN$ 7540 PRINT" PREPARE LA ";DV$ 7545 PRINT" LORSQUE PRETE PESE SUR RETURN[146]" 7550 GETE$:IFE$=""THEN7550 7560 IF ASC(E$)<>13THEN7550 7570 RETURN 8000 X$="":POKEM+O,160:POKEC+O,1 8010 GETY$:IFY$=""THEN8010 8020 X=ASC(Y$):IFX=13THEN8150 8030 IFX=20THEN8100 8040 Y=LEN(X$):X$=X$+Y$:IFX>63THENX=X-64 8050 POKEM+O+Y,X:POKEC+O+Y,1:POKEM+O+Y+1,160:POKEC+O+Y+1,1:IFLEN(X$)